home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 52 / 64er_Magazin_Sonderheft_52_19xx_Markt__Technik_de_Side_B.d64 / listing 22 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  149 lines

  1. 0 rem *****************************
  2. 1 rem * adventure-programmierkurs *
  3. 2 rem *                           *
  4. 3 rem *     uebungs-programm      *
  5. 4 rem *****************************
  6. 9 rem basic-erweiterung
  7. 10 data76,24,1,177,251,145,251,200,208,249,230,252,202,208,244,96,120,160,0,169
  8. 12 data160,132,251,133,252,162,32,32,11,1,169,224,132,251,133,252,162,32,32,11
  9. 14 data1,169,53,133,1,88,96:fori=264to310:readx:pokei,x:next:sys264
  10. 16 fori=710to730:readx:pokei,x:next
  11. 18 data208,3,76,29,168,32,192,2,32,19,166,56,165,95,233,1,164,96,76,36,168
  12. 20 poke40996,197:poke40997,2:poke1,54
  13. 22 fori=43168to43170:readx:pokei,x:next
  14. 24 fori=704to709:readx:pokei,x:next
  15. 26 data32,192,2,32,138,173,76,247,183
  16. 30 gosub52000: rem tabellen deffinieren
  17. 100 zn=1:goto1130
  18. 1000 rem a c t i o n m o d u l
  19. 1010 gosub50000:rem befehlseingabemodul
  20. 1100 rem gehen in ein neues zimmer
  21. 1105 ifve<1orve>10then1200
  22. 1110 ifri(ve)=0thenprint"kein weg in diese richtung !":goto1200
  23. 1120 zn=ri(ve):print"[147]"
  24. 1130 gosub 10000+zn*100
  25. 1140 restore 10000+zn*100
  26. 1150 fori=1to10:readri(i):next
  27. 1160 print"moegliche richtungen : ";
  28. 1165 ic=0:fori=1to10:ifri(i)<>0thenprintve$(i);",";:ic=1
  29. 1170 nexti
  30. 1175 ific=0thenprint"keine."
  31. 1180 ific=1thenprintchr$(20)
  32. 1185 print"ich sehe : ";
  33. 1186 ic=0:fori=1tooz:ifoo(i)=znthenprintob$(i);",";:ic=1
  34. 1187 next
  35. 1188 fori=1togz:ifge(i)=znthenprintge$(i);",";:ic=1
  36. 1190 next
  37. 1192 ific=0thenprint"nichts besonderes."
  38. 1194 ific=1thenprintchr$(20)
  39. 1200 rem
  40. 2000 rem reaktion auf befehle (allgemeine action)
  41. 2100 rem nimm routine
  42. 2110 ifve<>15then2200
  43. 2120 ifge(g1)<>znthenprint"ich sehe diesen gegenstand hier nicht !"
  44. 2125 ifge(g1)=-1thenprint"sie haben diesen gegenstand bereits !"
  45. 2130 ifge(g1)=znthenge(g1)=-1:print"ok."
  46. 2200 rem inventur routine
  47. 2205 ifve<>22then2300
  48. 2210 print"ich habe: ";
  49. 2220 ic=0:fori=1togz:ifge(i)=-1thenprintge$(i)",";:ic=1
  50. 2225 next
  51. 2230 ific=0thenprint"nichts."
  52. 2235 ific=1thenprint"[157] "
  53. 2300 rem verlier routine
  54. 2305 ifve<>18then2400
  55. 2310 ifge(g1)<>-1thenprint"ich habe das nicht !"
  56. 2320 ifge(g1)=-1thenge(g1)=zn:print"ok."
  57. 2400 rem schau - routine
  58. 2405 ifve<>13then2500
  59. 2410 ifob=0andg1=0thenprint"[147]":ve=0:goto1130
  60. 2415 ifob=1andoo(1)=znthenprint"die truhe ist sehr gross."
  61. 2500 goto1000
  62. 10000 rem ------- spielkarte -------
  63. 10100 rem raum 1 ---------
  64. 10102 data 0,3,0,2,0,0,0,0,0,0
  65. 10105 print"raum nummer 1"
  66. 10120 return
  67. 10200 rem raum 2 ---------
  68. 10202 data 0,5,1,0,0,0,0,6,0,0
  69. 10205 print"raum nummer 2"
  70. 10220 return
  71. 10300 rem raum 3 ---------
  72. 10302 data 1,0,0,0,0,0,0,0,0,4
  73. 10305 print"raum nummer 3"
  74. 10320 return
  75. 10400 rem raum 4 ---------
  76. 10402 data 0,0,0,0,0,0,0,0,3,0
  77. 10405 print"raum nummer 4"
  78. 10420 return
  79. 10500 rem raum 5 ---------
  80. 10502 data 2,0,0,0,0,0,0,0,0,0
  81. 10505 print"raum nummer 5"
  82. 10520 return
  83. 10600 rem raum 6 ---------
  84. 10602 data 0,0,0,0,2,0,0,0,0,0
  85. 10605 print"raum nummer 6"
  86. 10620 return
  87. 50000 rem ****************************
  88. 50010 rem *     befehlseingabe       *
  89. 50020 rem *     befehlszerlegung     *
  90. 50030 rem *     befehlscodierung     *
  91. 50040 rem ****************************
  92. 50050 ifud=1then50220
  93. 50060 poke198,0:be$="":print"was nun ? ";
  94. 50070 poke204,0
  95. 50080 getx$:ifx$=""then50080
  96. 50090 ifpeek(203)=1orlen(be$)>68thenprint" ":poke204,1:goto50140
  97. 50100 i=asc(x$):ifi<65ori>90thenifi<>32andi<>20andi<>34then50080
  98. 50110 ifi=20andbe$=""then50080
  99. 50120 ifi=20thenpoke204,1:print"[157]  [157][157]";:be$=left$(be$,len(be$)-1):goto50070
  100. 50130 printx$;:be$=be$+x$:goto50080
  101. 50140 fori=1to10:be$(i)="":next:wz=1:fori=1tolen(be$)
  102. 50150 :ifmid$(be$,i,1)=" "thengosub50190:goto50180
  103. 50160 :ifwz>10thenprint"eingabe ist zu lang !":i=len(be$)+1:goto50180
  104. 50170 :be$(wz)=be$(wz)+mid$(be$,i,1)
  105. 50180 nexti:goto50220
  106. 50190 ic=0:fori1=1toaz:ifbe$(wz)=au$(i1)thenic=1
  107. 50200 nexti1:ific=0thenwz=wz+1:return
  108. 50210 be$(wz)="":return
  109. 50220 ifud=1thenud=0:goto50240
  110. 50230 wz=1:ve=0:ob=0:pe=0
  111. 50240 ic=0:g1=0:g2=0
  112. 50250 fori=1tovz:ifbe$(wz)=ve$(i)thenve=i:ic=1
  113. 50251 iflen(be$(wz))<3then50260
  114. 50255 ifbe$(wz)=left$(ve$(i),len(be$(wz)))thenve=i-val(right$(ve$(i),1)):ic=1
  115. 50260 nexti:ific=1then50350
  116. 50270 fori=1togz:ifbe$(wz)<>ge$(i)then50300
  117. 50280 ic=1:ifg1=0theng1=i
  118. 50290 g2=i:ifg2=g1theng2=0
  119. 50300 nexti:ific=1then50350
  120. 50310 fori=1tooz:ifbe$(wz)=ob$(i)thenob=i:ic=1
  121. 50320 nexti:ific=1then50350
  122. 50330 fori=1topz:ifbe$(wz)=pe$(i)thenpe=i:ic=1
  123. 50340 nexti
  124. 50350 ifbe$(wz)="und"thenud=1:ic=1
  125. 50360 ific=0thenprint"ich kenne ";be$(wz);" nicht !":return
  126. 50370 wz=wz+1:ifwz>10orbe$(wz)=""orud=1thenreturn
  127. 50380 ic=0:goto50250
  128. 52000 rem t a b e l l e n
  129. 52005 restore52000
  130. 52010 rem verbtabelle ---------
  131. 52020 datan,s,w,o,nw,no,sw,so,rauf,runter
  132. 52030 dataoeffne,schliesse,schaue,untersuche1,nimm,nehme1,hole2
  133. 52035 dataverliere,lege1,wirf2,werfe3,inventur
  134. 52100 vz=22:dimve$(vz):fori=1tovz:readve$(i):next
  135. 52200 rem gegenstandstabelle ---------
  136. 52210 dataschwert,1
  137. 52211 dataseil,2
  138. 52212 dataschluessel,4
  139. 52213 datadiamant,5
  140. 52300 gz=4:dimge$(4):dimge(4):fori=1togz:readge$(i):readge(i):nexti
  141. 52400 rem objekttabelle ---------
  142. 52410 datatruhe,5
  143. 52412 dataschacht,6
  144. 52414 dataeisenring,6
  145. 52416 datatuer,2
  146. 52418 datatuer,5
  147. 52500 oz=5:dimob$(oz):dimoo(oz):fori=1tooz:readob$(i):readoo(i):nexti
  148. 53000 return
  149.